package com.eltsistema.controller;

import java.text.ParseException;

import javax.servlet.http.HttpServletRequest;

import org.hibernate.Session;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import com.eltsistemas.adapter.Adapter;
import com.eltsistemas.adapter.Calendario;
import com.eltsistemas.dao.ClienteDao;
import com.eltsistemas.modelo.Cliente;

@Controller
public class ClienteController {
	
	@RequestMapping("/formCliente")
	public String formCliente(Model model)
	{
		model.addAttribute("estados", new Adapter().getEstados());
		model.addAttribute("dataPadrao", new Calendario().getDataAtual());
		return "cadcliente";
	}
		
	@RequestMapping("/adicionarCliente")
	public String adiciona(Cliente cliente, String data, HttpServletRequest request) throws ParseException
	{
		
		System.out.print("Teste"+cliente.getTipo());
		
		cliente.setDataCadastro(new Calendario().getData(data));
		Session session = (Session) request.getAttribute("session");
		ClienteDao daoCliente = new ClienteDao(session);	
		daoCliente.adiciona(cliente);
		return "redirect:listaCliente";
	}
	
	@RequestMapping("/listaCliente")
	public String lista(Model model, HttpServletRequest request)
	{
		Session session = (Session) request.getAttribute("session");
		ClienteDao daoCliente = new ClienteDao(session);
		model.addAttribute("clientes", daoCliente.lista());
		return "cliente";
	}
	
	@RequestMapping("/exibeCliente")
	public String exibe(Cliente cliente, Model model, HttpServletRequest request)
	{
		model.addAttribute("estados", new Adapter().getEstados());
		Session session = (Session) request.getAttribute("session");
		ClienteDao daoCliente = new ClienteDao(session);
		model.addAttribute("cliente", daoCliente.exibe(cliente));
		return "editcliente";
	}
	
	@RequestMapping("/alterarCliente")
	public String altera(Cliente cliente, String data, HttpServletRequest request) throws ParseException
	{
		cliente.setDataCadastro(new Calendario().getData(data));
		Session session = (Session) request.getAttribute("session");
		ClienteDao daoCliente = new ClienteDao(session);	
		daoCliente.altera(cliente);
		return "redirect:listaCliente";
	}
	
	@RequestMapping("/removeCliente")
	public String remover(Cliente cliente, HttpServletRequest request)
	{
		Session session = (Session) request.getAttribute("session");
		ClienteDao daoCliente = new ClienteDao(session);	
		daoCliente.remover(cliente);
		return "redirect:listaCliente";
	}

}
